A file system may manage file storage and file access for one or more computer systems and/or other electronic devices. Specifically, the file system may provide users with access to different files that are stored to different storage devices managed by that file system, and may further allow the users to store files onto the storage devices.
A traditional file system may use directories and subdirectories to organize the files on the one or more storage devices. For instance, a tree-based directory hierarchy may be created to separate the storage of different files or groups of files. The directories may be defined by users and by applications or programs that are installed or run from a user device.
Each file may be stored in a particular directory that is accessed via a particular path. The particular path may specify a traversal of the directory structure from a root directory or root node to the particular directory where the desired file is stored. The particular path may specify each of the subdirectories that lead from the root directory to the particular directory. Accordingly, different users that wish to access the same file may specify the particular directory path where that file is stored, and may access the file from the same directory as there is a one file-to-one directory correspondence.
This one-to-one correspondence may be inefficient or difficult to remember (for users attempting to access files) when some files are simultaneously used as part of different projects or workflows, but those same files have to be accessed from one folder or directory. For instance, a first user working on a first workflow may look for a particular file in a first location, that is associated with the first workflow, and a second user working on a second workflow may look for the same particular file in a second location, that is associated with the second workflow, leading to at least one of the users having difficulty accessing the particular file when the particular file is stored in a directory path that is unrelated to the workflow being performed by the user.
The particular file can be replicated in different directories that are associated with each of the different workflows, but this can lead to multiple copies of the file that are out of sync with one another and/or retain a subset of the data of another copy of the same file. In other words, the changes that are made to one copy of the particular file may not be carried over into the other copy of the particular file that is stored in another directory associated with the other workflow.